// 自动生成模板SmsCoupon
package biz

import (
	"time"

	"github.com/go-kratos/kratos/v2/log"
)

// smsCoupon表 结构体  SmsCoupon
type SmsCoupon struct {
	Id              *int       `json:"id" form:"id" gorm:"primarykey;comment:id;column:id;size:19;"`                                           //id
	CouponType      *bool      `json:"couponType" form:"couponType" gorm:"comment:优惠卷类型[0->全场赠券；1->会员赠券；2->购物赠券；3->注册赠券];column:coupon_type;"` //优惠卷类型[0->全场赠券；1->会员赠券；2->购物赠券；3->注册赠券]
	CouponImg       *string    `json:"couponImg" form:"couponImg" gorm:"comment:优惠券图片;column:coupon_img;size:2000;"`                           //优惠券图片
	CouponName      *string    `json:"couponName" form:"couponName" gorm:"comment:优惠卷名字;column:coupon_name;size:100;"`                         //优惠卷名字
	Num             *int       `json:"num" form:"num" gorm:"comment:数量;column:num;size:10;"`                                                   //数量
	Amount          *float64   `json:"amount" form:"amount" gorm:"comment:金额;column:amount;size:18;"`                                          //金额
	PerLimit        *int       `json:"perLimit" form:"perLimit" gorm:"comment:每人限领张数;column:per_limit;size:10;"`                               //每人限领张数
	MinPoint        *float64   `json:"minPoint" form:"minPoint" gorm:"comment:使用门槛;column:min_point;size:18;"`                                 //使用门槛
	StartTime       *time.Time `json:"startTime" form:"startTime" gorm:"comment:开始时间;column:start_time;"`                                      //开始时间
	EndTime         *time.Time `json:"endTime" form:"endTime" gorm:"comment:结束时间;column:end_time;"`                                            //结束时间
	UseType         *bool      `json:"useType" form:"useType" gorm:"comment:使用类型[0->全场通用；1->指定分类；2->指定商品];column:use_type;"`                   //使用类型[0->全场通用；1->指定分类；2->指定商品]
	Note            *string    `json:"note" form:"note" gorm:"comment:备注;column:note;size:200;"`                                               //备注
	PublishCount    *int       `json:"publishCount" form:"publishCount" gorm:"comment:发行数量;column:publish_count;size:10;"`                     //发行数量
	UseCount        *int       `json:"useCount" form:"useCount" gorm:"comment:已使用数量;column:use_count;size:10;"`                                //已使用数量
	ReceiveCount    *int       `json:"receiveCount" form:"receiveCount" gorm:"comment:领取数量;column:receive_count;size:10;"`                     //领取数量
	EnableStartTime *time.Time `json:"enableStartTime" form:"enableStartTime" gorm:"comment:可以领取的开始日期;column:enable_start_time;"`              //可以领取的开始日期
	EnableEndTime   *time.Time `json:"enableEndTime" form:"enableEndTime" gorm:"comment:可以领取的结束日期;column:enable_end_time;"`                    //可以领取的结束日期
	Code            *string    `json:"code" form:"code" gorm:"comment:优惠码;column:code;size:64;"`                                               //优惠码
	MemberLevel     *bool      `json:"memberLevel" form:"memberLevel" gorm:"comment:可以领取的会员等级[0->不限等级，其他-对应等级];column:member_level;"`          //可以领取的会员等级[0->不限等级，其他-对应等级]
	Publish         *bool      `json:"publish" form:"publish" gorm:"comment:发布状态[0-未发布，1-已发布];column:publish;"`                                //发布状态[0-未发布，1-已发布]
}

// TableName smsCoupon表 SmsCoupon自定义表名 sms_coupon
func (SmsCoupon) TableName() string {
	return "sms_coupon"
}

type SmsCouponRepo interface {
}

type SmsCouponUsecase struct {
	repo SmsCouponRepo
	log  *log.Helper
}

func NewSmsCouponUsecase(repo GreeterRepo, logger log.Logger) *SmsCouponUsecase {
	return &SmsCouponUsecase{repo: repo, log: log.NewHelper(logger)}
}
